package com.foreknow.demo10;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 * JDBC： Java中连接数据库的技术。
 * JDBC的开发流程：
 * 1. 加载驱动
 * 2. 获取连接(Connection)
 *
 */
public class TestJdbc {
    public static void main(String[] args) {
        try {
            //1. 加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //2. 获取连接(Connection)
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/basic2","root","123456");
            //3. 获取到Statement接口对象用于对数据库进行操作(insert delete update select)
            //   Statement接口: 用于执行静态 SQL 语句并返回它所生成结果的对象。
            //   ResultSet executeQuery(String sql) 执行给定的 SQL 语句，该语句返回单个 ResultSet 对象。
            //   int executeUpdate(String sql) 执行给定 SQL 语句，该语句可能为 INSERT、UPDATE 或 DELETE 语句，或者不返回任何内容的 SQL 语句（如 SQL DDL 语句）。
            Statement stmt = conn.createStatement();
            //4. 查询并获取到ResultSet(结果集)：用来保存查询到的结果
            int isRigth = stmt.executeUpdate("insert into admin(username,password) values ('tom123','123456')");
            System.out.println(isRigth);
            //            ResultSet rs = stmt.executeQuery("select * from admin");
            //            List<Admin> list = new ArrayList<>();
            //            while (rs.next()){
            //                //获取到当前行的第几列
            //                int id = rs.getInt("id");
            //                String username = rs.getString("username");
            //                String password = rs.getString("password");
            //                Admin admin = new Admin();
            //                admin.setId(id);
            //                admin.setUsername(username);
            //                admin.setPassword(password);
            //                list.add(admin);
            //            }
            //5. 关闭资源
            //rs.close();
            stmt.close();
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
